1. Field of the Invention
The invention relates generally to database systems and more specifically to optimizing the way multiple tasks can write data to a shared memory by allowing them to do so in parallel.
2. Related Art
Modern computer systems frequently employ numerous shared resources that can be used by multiple tasks being performed by the computer system. Frequently, and for various reasons, it is desirable for some of the shared resources to only be used by one task at a time. For instance, in database systems, a common type of shared resource is memory. Limiting the use of the memory to one task at a time helps to maintain the integrity of the data stored therein. Accordingly, under such a scheme, when two tasks want to write to the memory, a second task must sometimes wait for a first task to complete using the memory resource in order to use the memory resource itself. This kind of situation—one where a task must wait for another task to finish using a resource in order to use it itself—is referred to as a contention.
Contentions, while the result of necessary safeguards, can have a number of negative effects on the operation of a computer system. For instance, a system that experiences too many contentions of the kind described above can have greatly reduced throughput, which can result in slower than optimal operation of a database system. Thus, there exists a need in the art for systems and methods that reduce or minimize the occurrence of contentions, but that still guarantee data integrity.